package com.wkbb.common.dto.basic;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 设备信息表
 * b_device_info
 *
 * @author Lilin
 * @date 2019-08-16 10:59:15
 */
@Data
public class DeviceInfoDto implements Serializable {
    /**
     * 编号
     */
    @ApiModelProperty(value = "编号")
    private Long id;

    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    private String name;

    /**
     * 组织ID
     */
    @ApiModelProperty(value = "组织ID")
    private Long orgId;

    /**
     * 班级ID
     */
    @ApiModelProperty(value = "班级ID")
    private Long classId;

    /**
     * 设备类型ID
     */
    @ApiModelProperty(value = "设备类型ID")
    private Long deviceTypeId;

    /**
     * 尺寸
     */
    @ApiModelProperty(value = "尺寸")
    private String inch;

    /**
     * 功能场景 1：校门 2：宿舍楼 3：办公楼 4：教学楼 5：校车
     */
    @ApiModelProperty(value = "功能场景 1：校门 2：宿舍楼 3：办公楼 4：教学楼 5：校车")
    private Short scene;

    /**
     * 设备编码
     */
    @ApiModelProperty(value = "设备编码")
    private String deviceCode;

    /**
     * 设备序列号
     */
    @ApiModelProperty(value = "设备序列号")
    private String deviceSerial;

    /**
     * 安装时间
     */
    @ApiModelProperty(value = "安装时间")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    private Date deployTime;

    /**
     * 软件版本
     */
    @ApiModelProperty(value = "软件版本")
    private String softwareVer;

    /**
     * 固件版本
     */
    @ApiModelProperty(value = "固件版本")
    private String hardwareVer;

    /**
     * 是否播报硬件位置 0：不播报 1：播报
     */
    @ApiModelProperty(value = "是否播报硬件位置 0：不播报 1：播报")
    private Boolean speakLoc;

    /**
     * 是否在班级广播 0：不播报 1：播报
     */
    @ApiModelProperty(value = "是否在班级广播 0：不播报 1：播报")
    private Boolean speakInClass;

    /**
     * 是否覆盖播报 0：不覆盖 1覆盖
     */
    @ApiModelProperty(value = "是否覆盖播报 0：不覆盖 1覆盖")
    private Boolean speakOverlay;

    /**
     * 是否在设备播报 0：不播报 1：播报
     */
    @ApiModelProperty(value = "是否在设备播报 0：不播报 1：播报")
    private Boolean speakOnDevice;

    /**
     * 屏保文章ID
     */
    @ApiModelProperty(value = "屏保文章ID")
    private Long saverArticleId;

    /**
     * 屏保模式 1：图片加公告 2：纯轮播图 3：纯公告
     */
    @ApiModelProperty(value = "屏保模式 1：图片加公告 2：纯轮播图 3：纯公告 4：不展示")
    private Short saverMode;

    /**
     * 是否关联访客系统 0：不关联 1：关联
     */
    @ApiModelProperty(value = "是否关联访客系统 0：不关联 1：关联")
    private Boolean activeVstSys;

    /**
     * 设备开门方向 1：普通大屏 2：进 3：出
     */
    @ApiModelProperty(value = "设备开门方向 1：普通大屏 2：进 3：出")
    private Short direction;

    /**
     * 红外测温开关0:关闭1:开启
     */
    @ApiModelProperty(value = "红外测温开关0:关闭1:开启")
    private Boolean infraredFlag;

    /**
     * 红外阈值
     */
    @ApiModelProperty(value = "红外阈值")
    private BigDecimal infraredValue;

    /**
     * 红外测温补偿系数
     */
    @ApiModelProperty(value = "红外测温补偿系数")
    private BigDecimal infraredTemperatureCompensation;
    /**
     * 温馨提示
     */
    @ApiModelProperty(value = "温馨提示")
    private String tips;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 辅助摄像头
     */
    @ApiModelProperty(value = "辅助摄像头")
    private Object assistCamera;

    /**
     * 识别距离
     */
    @ApiModelProperty(value = "人脸配置")
    private Object faceConfig;

    @ApiModelProperty(value = "组织名称")
    private String orgName;

    @ApiModelProperty(value = "班级名称")
    private String className;

    @ApiModelProperty(value = "设备类型名称")
    private String deviceTypeName;

    /**
     * 状态(0无效1有效)
     */
    @ApiModelProperty(value = "状态(0无效1有效)")
    private Boolean status;

    /**
     * 摄像头:单目1,双目0
     */
    @ApiModelProperty(value = "摄像头:单目1,双目0")
    private Boolean binocularOrMonocularCamera=false;

    /**
     *  活体开关：1开，0关闭
     */
    @ApiModelProperty(value = "活体开关：1开，0关闭 ")
    private Boolean live;

    /**
     * 设备上报时间z
     */
    @ApiModelProperty(value = "设备上报时间")
    private Date uploadTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String updateBy;

    /**
     * 考勤开关1：默认 2：打开 3：关闭
     */
    @ApiModelProperty(value = "考勤开关1：默认 2：打开 3：关闭 ")
    private Short attendanceSwitch;


    /**
     * 允许遮挡开关：1开（遮挡依然可以检测通过），0关闭。默认开1
     */
    @ApiModelProperty(value = "允许遮挡开关：1开（遮挡依然可以检测通过），0关闭。默认开1 ")
    private Boolean coverDetect;

    /**
     *  配对模式开关（0关闭1主2从）
     */
    @ApiModelProperty(value = "配对模式开关（0关闭1主2从） ")
    private Short pairingMode;

    /**
     * 配对码（主节点不需要填这个值，从节点时填主节点的devicecode）
     */
    @ApiModelProperty(value = "配对码（主节点不需要填这个值，从节点时填主节点的devicecode）")
    private String pairingMasterDeviceCode;

    /**
     * 100、通用界面。200、智慧校园界面。201、天津智慧校园界面。300、校车界面
     */
    @ApiModelProperty(value = "100、通用界面。200、智慧校园界面。201、天津智慧校园界面。300、校车界面 ")
    private Short layout;
}